package com.settlement.system.mapper;

import com.settlement.system.model.entity.common.CommonPlugIn;
import com.settlement.system.model.entity.common.SinglePage;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author author
 */
public interface RrPlugInMapper {

    /**
     * 获取记账项目数量
     *
     * @param params
     * @return
     */
    public Integer getRecordAccountProjectCount(@Param("params") Map<String, Object> params);

    /**
     * 获取记账项目分页账单接口
     *
     * @param page
     * @param params
     * @param orderByField
     * @param orderBy
     * @return
     */
    public List<CommonPlugIn> getRecordAccountProject(@Param("page") SinglePage page, @Param("params") Map<String, Object> params,
                                                      @Param("orderByField") String orderByField, @Param("orderBy") String orderBy);

    /**
     * 获取记账项目数量
     *
     * @param params
     * @return
     */
    public Integer getNcEnterAccountBodyCount(@Param("params") Map<String, Object> params);

    /**
     * 获取记账项目分页账单接口
     *
     * @param page
     * @param params
     * @param orderByField
     * @param orderBy
     * @return
     */
    public List<CommonPlugIn> getNcEnterAccountBody(@Param("page") SinglePage page, @Param("params") Map<String, Object> params,
                                                    @Param("orderByField") String orderByField, @Param("orderBy") String orderBy);

    /**
     * 获取唯品退供差异账单编码接口
     *
     * @param page
     * @param params
     * @param orderByField
     * @param orderBy
     * @return
     */
    public List<CommonPlugIn> getWpRdBillCode(@Param("page") SinglePage page, @Param("params") Map<String, Object> params,
                                                    @Param("orderByField") String orderByField, @Param("orderBy") String orderBy);



    /**
     * 获取供应商名称分页接口
     *
     * @param page
     * @param params
     * @param orderByField
     * @param orderBy
     * @return
     */
    public List<CommonPlugIn> getWpRrVendor(@Param("page") SinglePage page, @Param("params") Map<String, Object> params,
                                                    @Param("orderByField") String orderByField, @Param("orderBy") String orderBy);

    /**
     * 获取供应商名称数量
     *
     * @param params
     * @return
     */
    public Integer getWpRrVendorCount(@Param("params") Map<String, Object> params);

    /**
     * 获取唯品退供差异账单编码数量
     *
     * @param params
     * @return
     */
    public Integer getWpRdBillCodeCount(@Param("params") Map<String, Object> params);


    /**
     * 获取账单类型数量
     *
     * @param params
     * @return
     */
    public Integer getBillTypeCount(@Param("params") Map<String, Object> params);

    public Integer getVoucherTypeCount(@Param("params") Map<String, Object> params);

    /**
     * 获取账单类型分页账单接口
     *
     * @param page
     * @param params
     * @param orderByField
     * @param orderBy
     * @return
     */
    public List<CommonPlugIn> getBillType(@Param("page") SinglePage page, @Param("params") Map<String, Object> params,
                                                    @Param("orderByField") String orderByField, @Param("orderBy") String orderBy);

    public List<CommonPlugIn> getVoucherType(@Param("page") SinglePage page, @Param("params") Map<String, Object> params,
                                          @Param("orderByField") String orderByField, @Param("orderBy") String orderBy);


    /**
     * 获取店铺的数量
     *
     * @param params
     * @return
     */
    public Integer getShopCount(@Param("params") Map<String, Object> params);

    /**
     * 获取线下打款账号的数量
     *
     * @param params
     * @return
     */
    public Integer getOfflineRemitAccountCount(@Param("params") Map<String, Object> params);





    /**
     * 获取店铺的分页账单接口
     *
     * @param page
     * @param params
     * @param orderByField
     * @param orderBy
     * @return
     */
    public List<CommonPlugIn> getShop(@Param("page") SinglePage page, @Param("params") Map<String, Object> params,
                                      @Param("orderByField") String orderByField, @Param("orderBy") String orderBy);


    /**
     * 获取线下打款账号接口
     *
     * @param page
     * @param params
     * @param orderByField
     * @param orderBy
     * @return
     */
    public List<CommonPlugIn> getOfflineRemitAccount(@Param("page") SinglePage page, @Param("params") Map<String, Object> params,
                                        @Param("orderByField") String orderByField, @Param("orderBy") String orderBy);




    /**
     * 获取制单人数量
     *
     * @param params
     * @return
     */
    public Integer getEditorCount(@Param("params") Map<String, Object> params);

    /**
     * 获取制单人账单接口
     *
     * @param page
     * @param params
     * @param orderByField
     * @param orderBy
     * @return
     */
    public List<CommonPlugIn> getEditor(@Param("page") SinglePage page, @Param("params") Map<String, Object> params,
                                        @Param("orderByField") String orderByField, @Param("orderBy") String orderBy);

    /**
     * 获取制单人数量
     *
     * @param params
     * @return
     */
    public Integer getThreeChannelNoCount(@Param("params") Map<String, Object> params);

    /**
     * 获取制单人账单接口
     *
     * @param page
     * @param params
     * @param orderByField
     * @param orderBy
     * @return
     */
    public List<CommonPlugIn> getThreeChannelNo(@Param("page") SinglePage page, @Param("params") Map<String, Object> params,
                                                @Param("orderByField") String orderByField, @Param("orderBy") String orderBy);


    /**
     * 获取制单人数量
     *
     * @param params
     * @return
     */
    public Integer getShopAccountCount(@Param("params") Map<String, Object> params);

    /**
     * 获取制单人账单接口
     *
     * @param page
     * @param params
     * @param orderByField
     * @param orderBy
     * @return
     */
    public List<CommonPlugIn> getShopAccount(@Param("page") SinglePage page, @Param("params") Map<String, Object> params,
                                                @Param("orderByField") String orderByField, @Param("orderBy") String orderBy);


    /**
     * 获取 京东 店铺的数量
     *
     * @param params
     * @return
     */
    public Integer getShopNameJdCount(@Param("params") Map<String, Object> params);

    /**
     * 获取 京东 店铺的分页账单接口
     *
     * @param page
     * @param params
     * @param orderByField
     * @param orderBy
     * @return
     */
    public List<CommonPlugIn> getShopNameJd(@Param("page") SinglePage page, @Param("params") Map<String, Object> params,
                                      @Param("orderByField") String orderByField, @Param("orderBy") String orderBy);


}
